var express = require('express');
var router = express.Router();
var models = require('../models') // 引用模型
var Op =models.Sequelize.Op; // 实现模糊查询需要引入OP

// 文章列表
// router.get('/', function(req, res, next) {
//    // model.Articles拿到Articles表，findAll查出所有数据
//    // 'id','DESC'倒叙,  ASC正序
//    models.Article.findAll({order:[['id','DESC']]}).then(data =>{
//     res.json({Article:data})
//   })
  
// });

// 新增
router.post('/', function(req, res, next) {
  // model.Articles拿到Articles表，findAll查出所有数据
  // 'id','DESC'倒叙,  ASC正序
res.json({'内容': req.body})
  models.Article.create(req.body).then(data =>{
   res.json({Article:data})
 })
 
});

// 查询单条文章查看
//findByPk()方法可以查出Article表id为req.params.id的文章
// router.get('/:id', async function(req, res, next) {
// const article = await models.Article.findByPk(req.params.id)
// res.json({Article:article})

// });

// 查询单条文章查看加关联评论表
router.get('/:id', async function(req, res, next) {
  const article = await models.Article.findOne({
    where: {id: req.params.id},
    // 关联评论，文章在查询时会把文章的评论查询出来
    include: [models.Comment]
  })
  res.json({Article:article})
  
  });
  
// 修改
//findByPk()方法可以查出Article表id为req.params.id的文章
router.put('/:id', async function(req, res, next) {
  // 拿到表article中前端传过来的id,拿到当前文章
  const article = await models.Article.findByPk(req.params.id)
  // update()修改数据
  article.update(req.body)
  //返回被修改后的文章
  res.json({Article:article})
  
  });

// 删除
router.delete('/:id', async function(req, res, next) {
  // 拿到表article中前端传过来的id,拿到当前文章
  const article = await models.Article.findByPk(req.params.id)
  // destroy()删除数据
  article.destroy()
  //返回被修改后的文章
  res.json({msg:'删除成功！'})
  
  });

// 模糊查询
// router.get('/', async function(req, res, next) {
//   // 保存查询的空对象
//   var where ={}
//   // 模糊查询标题 接收标题
//   var title =req.query.title
//  // 如果传标题过来
//   if(title){
//    where.title = {
//     // like :sql语法,%表示前后可以更其他文字
//    [Op.like]:'%'+title+'%'

//    }}
//   var article = await models.Article.findAll({
//     order:[['id','DESC']],
//     where:where
//   })
//   res.json({Article:article})
 
// });


// 文章列表 模糊查询  分页功能
router.get('/', async function(req, res, next) {
  // 当前页
  var currentPage = parseInt(req.query.currentPage) || 1
  // 每页显示多少条
  var pageSize = parseInt(req.query.pageSize) || 2
  // 保存查询的空对象
  var where ={}
  // 模糊查询标题 接收标题
  var title =req.query.title
 // 如果传标题过来
  if(title){
   where.title = {
    // like :sql语法,%表示前后可以更其他文字
   [Op.like]:'%'+title+'%'

   }}
   // findAndCountAll返回总的记录数
  var result = await models.Article.findAndCountAll({
    order:[['id','DESC']],
    where:where,
    offset:(currentPage-1)*pageSize,
    limit:pageSize
  })

  res.json({
    articles:result.rows,
    pagination:{
      currentPage:currentPage,
      pageSize:pageSize,
      total:result.count
    }

  })

 // res.json(result)
  //res.json({Article:article})
 
});

module.exports = router;
